跳到主要内容

1.1.1 单线

题目描述

创建一个模块,它有一个输入和一个输出,其行为类似于电线。

与物理电线不同,Verilog 中的电线(和其他信号)是方向性的。这意味着信息只能在一个方向上流动,从(通常是一个)源流向汇(源也常被称为驱动器,它将值驱动到电线上)。在 Verilog 中的“连续分配”(assign left_side = right_side;)中,右侧的信号值被驱动到左侧的电线上。这个分配是“连续”的,因为即使右侧的值发生变化,分配也一直在进行。连续分配不是一次性的事件。

模块上的端口也有方向(通常是输入或输出)。输入端口由模块外部的某个东西驱动,而输出端口则将值驱动到外部。从模块内部来看,输入端口是驱动器或源,而输出端口是接收器。

下面的说明了电路的每个部分与 Verilog 代码的每个位如何相对应。模块和端口声明创建了电路的黑色部分。你的任务是通过添加一个分配语句将 in 连接到 out 来创建一个电线(绿色)。盒子外的部分不需要你关心,但你知道你的电路将通过将信号从我们的测试 harness 连接到你的.assigninouttop_module 上的端口来进行测试。

除了连续赋值之外,Verilog 还有另外三种赋值类型用于程序块,其中两种是可综合的。我们将在开始使用过程块时才会用到它们。

模块声明

module top_module( input in, output out );

做题区